<?php

namespace Dreamcat\ConfigClient\Api;

use Dreamcat\ConfigClient\Consts\NacosConst;
use Dreamcat\ConfigClient\Popo\NacosAppInfo;
use Dreamcat\ConfigClient\Popo\NacosConfigResult;
use Dreamcat\ConfigClient\Popo\NacosNotifiParam;

/**
 * nacos api
 * @author vijay
 * @see https://nacos.io/zh-cn/docs/open-api.html
 */
interface NacosServerInterface
{
    /**
     * 获取配置
     * @param string $dataId 配置 ID
     * @param string $group 配置分组
     * @param string $namespaceName 命名空间ID
     * @return NacosConfigResult 配置结果
     */
    public function getConfig(
        string $dataId,
        string $group = NacosConst::DEFAULT_GROUP,
        string $namespaceName = null
    ): NacosConfigResult;

    /**
     * 监听配置
     * @param NacosNotifiParam[] $nacosNotifiParams 要监控的参数
     * @return NacosAppInfo[] 有变化的结果
     */
    public function notifications(array $nacosNotifiParams): array;
}

# end of file
